筆記、09801 計算機網路概論-第1-C講 Computer Networks and the Internet


Posted by s103071049 on 2022-01-26

1.5 Internet structure and ISPs

  • 階層式的結構
  • at center: “tier-1” ISPs 第一階的網際網路提供者,通常是國家級的,涵蓋地域範圍比較大,彼此私下會互聯。
  • NAP : 公共的交換中心

網網相連,它的周邊有 tier-2

  • “Tier-2” ISPs: smaller (often regional) ISPs,會連上周邊的 “tier-1” ISPs。同樣地 tier-2 也會連結,目的是讓通訊可以有更多路徑選擇。

再下去是 “Tier-3”,更小的是 local。透過這樣一階一階下來,連成一個很大的網。

兩台 host 的溝通,事實上就是透過很多個 isp 互相轉接。所經過的路就是他們之間的連線。tier1 從紐約到西雅圖,就有很多路徑可選。所以怎麼選最好路徑 ?

1.6 Delay & loss in packet-switched networks

How do loss and delay occur?

router 本身會接很多 port,一個 port 經過網路線接到另一個 router。通常每一個 port 都會有 buffer (記憶體),也就是我們存封包的地方。如果輸出的速率小於輸入的速率,無法立刻消化,封包就會 queue,一般會 FIFO,比較聰明的 router 可以識別封包的類型,如果比較敏感像是 radio,可以讓你排前面一點、檔案就排後面一點。

到底有幾個 delay ?

  1. packet being transmitted (delay),封包排到最前面才開始要送,一開始送也要花時間,花的時間取決於傳送的速度、與封包大小 & 網速有關
  2. packets queueing (delay)
  3. free (available) buffers: arriving packets dropped (loss) if no free buffers。丟掉本身又有很多種丟法,最簡單是進來沒位置就丟、比較聰明的會在前面挑幾個丟

造成延遲的主要因素:
一、nodal processing - router 處理收到封包的處理時間。不管有線、無線都會受到干擾,傳送過程資料錯掉是收的人才能發現。所以收的人要做檢查。ex 傳送過程將送的資料做運算,得到一個值放在尾吧,你收到時我再做一次運算,比較是否一樣,如果不一樣就代表資料傳送有錯,我就把這個封包丟掉。一個 router 有很多個 port,我要決定我的封包要往哪裡去,通常是查表看 IP address (第三層)

當我知道他要從哪個 port 出去,就把它放到那個 queue 裡面去。

二、queueing - 在 queue 裡面排隊的時間,取決於 router 的擁擠程度
三、Transmission delay - 送一個封包所要花的時間 (長度/速度)
四、Propagation delay - 與網路長度、材質 (距離/速度)

R 是你可以用多快的速度把你的資料送到 LINK,送出去。送出去他可以多快送到對方手中,取決於你的介質。

EX - 封包走法的差異

把封包送到網路上和封包的訊號在傳輸線上跑的差異

整個封包都送完了,但最前頭都還沒有到對方,還在路上慢慢走

封包還沒完全送完,但他的第一個 bit (最前頭)已經到對方了

封包在一個 router 送出去的時候,未必是整個封包都送完慢慢走。有可能封包還未送完,他的第一個 bit 就到對方了。

Node Delay

網路上會經過很多節點,會經過很多 isp。每一台 router 都有這麼多延遲。

(一段 Node Delay)
收到封包 & 處理封包 => queue 排隊 => 傳送完 => 送到對方

Queueing delay L 乘上 a over R

封包長度 * 封包到達速率 / R = bit 總量送完所需要花的時間

封包來的數量越多,就會有排隊現象出現。

(排隊理論)

  • = 1 表示進來數量差不多等於出去數量
  • 1 進來數量大於出去速度,代表沒辦法消化。沒辦法消化 queue 就急速長,但因為 queue 有限所以會開始掉封包

Real Internet delays and routes

經過每個 router 會送三個 probes (探測)。我丟一個封包給第一個 router,對方的 router 會回一個封包回來,一問一答的動作,然後我會量時間,每個都問三次

Packet loss

loss 本身是 buffer。

Protocol “Layers”

有無方式可以讓網路在不斷發展下,比較有組織、比較好管理 ? 答案是分層

切成 layer 就有上下關係。每一個 layer 都是用下層所提供的服務,可能加點、加值,變成給上一層的服務。層與層之間都有 interface。

網路簡單分五層:從底層往上看

  • physical 表示真的傳輸的線,像是光纖、銅線、無線電(wireless)
  • link layer 表示你利用傳輸的線,把資料從一個節點送到另一個節點 (直接相連的兩點間的傳送),ex - Ethernet
  • network 表從 source 送到 destination 的傳送 (清大到美國中間會經過數十個路由,兩個路由之間就是一個 link,路徑的好壞是隨時會變化),ip 在這一層
  • transport 表 application 對 application 的傳送

優點:

  1. 如果有更好的服務,可以把其中某一段抽掉。只要介面訂得清楚,這就是分層的威力

router 本身分三層
clinet / server 都是 edge 末端

ex -
FTP application 把封包 (data) 丟給 transport layer,transport layer 就要想辦法送到目的地的 transport layer 再將他送上去

TCP 要求資料量、內容、順序都要對。所以他是如何做到的 ?

  1. 對方收到封包,要做回覆。若沒有回覆,就當作封包掉了,再重送。用了兩個重要的東西 (1) 計時器 (2) 重送

有無收到分兩種

  • 資料完全掉了
  • 資料收到,但錯掉了
    所以在送資料前會先做 CHECK SUM,也就是把我要送的資料做一個運算,將算好的數字放在封包的尾吧然後一起送過去,對方收到將 data 做相同的計算,將與帶在尾吧的 test sum 檢查碼做比較。若相同,則回 act,若不同就將封包丟掉。

為了跟對方對等的程式溝通,要做加工。這會導致封包變大。這就是打包。一個資料往下送,每一層之間為了能夠溝通,會做加工,導致封包越來越大。

一路往下送,封包會變大,因為每層都要加上溝通的訊息 (包裝 Encapsulation),往上送封包就變瘦(拆裝 Decapsulation)。


router 是 layer3 表示處理這個封包要看到第三層的資訊(IP)。switch 是 layer2 看網卡的位置。每個網卡上面都帶一個 ip address。

transport 會加一些欄位,目的是給 destination 的 transport 看。丟給 network,他的 H 隱含 soure IP & destination IP。同一層的層次,看同一層的 Header 各看各地。當 network 將他的東西丟給 link,link 又加上自己的 Header。

link 丟出去的會加原始的網卡地址 & 收這個封包的網卡位置。網卡是 48 bit,ip 是 32 bit。

不同層傳輸資料單位名稱

  • segmemt 是 transport layer 之間所送的 unit (4 層)
  • datagram 是 network layer 送的資料,上面帶有兩個 IP 位置 (3 層)
  • frame 是 link layer 之間所送的 unit (2 層)

只要上一層交給你的,都是你的 data,然後你再加上自己的 header,有些還會再加上尾吧。一般 transport & network layer 是加頭 + link layer 是加頭加尾。

這兩個 frame 有何差異 ?

經過 switch 出來之後,soure & destination 的網卡地址要換,每經過一個 link 他的地址就會換掉。但 ip 是有唯一性,傳輸過程不會換掉。

network layer 看目的地 ip 決定走向,選擇哪一個 port。

physical layer 沒有變大,他只是把它們變成一個 bit stirng。











Related Posts

MVC V.S. MVVM 學習筆記

MVC V.S. MVVM 學習筆記

Linux Mint 21.1 VNC Setup

Linux Mint 21.1 VNC Setup

CH4 字元與字串筆記

CH4 字元與字串筆記


Comments